#############################################################################
#                                                                           #
#                       netX Transport Library                              #
#                                                                           #
#############################################################################


General Notes
-------------
The versions are given in the form "<major>.<minor>.<build>.<revision>".
This is in line with the canonical numbering for all Hilscher firmware.
The dates are given in the international date format (yyyy-mm-dd).



#############################################################################
#                                                                           #
#                            Version History                                #
#                                                                           #
#############################################################################

V1.2.0.0 (2020-01-27)
----------------------
Change:
 - Rework TRACE output to be always available and shown in "debugview"

Add-ons:
 -

Bug fixes:
 - TransportDLL shows invalid information if connection to boards is lost and established again
 - Board enmueration (browsing) returns wrong interfaces pointer if board is disconnected 
 - Deactivated sequence number support in marshaller header (see documentation)

V1.0.0.0 (2019-05-20)
----------------------
Changed:
 - Updated API Headers and changed to HIL-Def. Headers.
 - Increased configuration limit to 256.

Add-ons:
 - Added support for netX90/netX4000 devices.

Bug fixes:
 -  Reverted changes made in (NXTDLL-57).

V0.15.0.0 (2017-04-18)
----------------------
Changed:
 - None.

Add-ons:
 - None

Bug fixes:
 -  Rescan failed after the second device is connected or disconnected
    - (NXTDLL-57) - When connecting / disconnecting USB device, in some 
      cases not all devices shown anymore

V0.14.0.0 (2016-09-26)
----------------------
Changed:
 - None.

Add-ons:
 - Added xDriverRestartDevice() for packet based communication via xSysdevice(RESET)

Bug fixes:
 -  None.
 
V0.13.0.0 (2016-07-04)
----------------------
Changed:
 - None.

Add-ons:
 - None.

Bug fixes:
 -  Added misssing information displayed by the netHost application
    - ulGetPacketCnt / ulPutPacketCnt
    - ulHSKFlagSize / ulNumOfBlocks / ulIOInAreaCnt / ulIOOutAreaCnt
    - ulMBXSize of the system channel

V0.12.0.0 (2015-12-21)
----------------------
Changed:
 - Changed "Version History.txt" to "netXTransport Version History"

Add-ons:
 - None.

Bug fixes:
 - Writing ulCommunicationError to channel information structure

 
V0.11.0.0 (2015-08-13)
----------------------
Changed:
 - Added 64bit support
 - Improved driver startup and board enumeration performance

Add-ons:
 - None.

Bug fixes:
 - xDriverOpen() is not thread-safe and may return invalid handle to the calling thread


V0.10.3.0 (2014-03-25)
----------------------
Changed:

Add-ons:

Bug fixes:
 - Possible deadlock when calling xSysdeviceOpen()/xChannelOpen().
 - Device disconnection may result in an access violation
 - Minor fixes and improvements
    * CIFX API locking handling


V0.10.2.0 (2013-10-14)
----------------------
Changed:
 - Only try to reconnect to a device if required

Add-ons:
 - Add support for xDriverRestartDevice() call

Bug fixes:
 - None.


V0.10.1.0 (2013-06-26)
----------------------
Changed:
 - Added calling convention (stdcall) to netXAPI Callbacks

Add-ons:
 - None.

Bug fixes:
 - None.


V0.10.0.0 (2013-03-01)
----------------------
Changes:
 - Migration to ISOC99 data types
 
Add-ons:
 - Added stub functions for xSysdeviceBootstart() and xSysdeviceExtendedMemory()

Bug fixes:
 - Fixed xChannelIORead() and xChannelReadSendData() not delivering I/O data
   on COM_FLAG error return
 - Timeout was passed mistakenly as time-to-reset value 
   in reset command (now set to 500ms)
 
 
V0.9.14.0 (2011-11-28)
----------------------
Changes:
 - None.
 
Add-ons:
 - None.

Bug fixes:
 - Time-consuming device browsing impede usability
 - xDriverRestartDevice failed due to wrong parameter validation


V0.9.13.0 (2011-05-19)
----------------------
Changes:
 - NX-API driver information is now retrieved from 
   the file version information resource
 - Added new netxAPI.h including ISOC99 data types
 - Review validation of pointers and handles passed to cifX API functions
 
Add-ons:
 - None.

Bug fixes:
 - nxDrvFindDevice() now calls nxDrvBrowseDevices() on NXDRV_FIND_FIRST as
   nxDRvInit() not calling browse devices anymore to speedup the DLL load.
 - Fixed incrementation of pulSearchIdx
 - netxAPI.h fixed definition of the NXAPI_PROGRESS_CALLBACK 
 - Access to invalid data layer crashes application
 - Send queue not cleared at deinit causes memory leak


V0.9.12.0 (2010-11-25)
----------------------
Changes:
 - None.
 
Add-ons:
 - None.

Bug fixes:
 - Bugfix: Invalid incoming packets with valid header 
           may crash the dll (new throws an exception)
 - Bugfix: Validate size of send queue before deleting entries


V0.9.9.0 (2010-10-07)
----------------------
Changes:
 - None.
 
Add-ons:
 - None.

Bug fixes:
 - rcX packet transfer: Read system information block 
   causes out-of-bounds buffer access
 - rcX packet transfer: xChannel/SysdevicePutPacket times 
   out due to missing interface specific transmit timeout
 - cifX API Marshaller: Connection failed if query server command
   is not supported on device side
 - Unkown data layers not handled during connection establishment


V0.9.8.0 (2010-06-30)
----------------------
Changes:
 - None.
 
Add-ons:
 - None.

Bug fixes:
 - Hardcoded timeout of remote procedure calls may causes 
   packet loss (Interface specific transmit timeout is now 
   used for the packet transfer)
 - rcX Packet transfer: Checksum calculation omitted for 
   xSysdevicePutPacket


V0.9.7.0 (2010-06-08)
----------------------
Changes:
 - Validate packet reply to reject invalid packets from device side
 
Add-ons:
 - None.

Bug fixes:
 - Checksum in transport frame omitted (Due to compatibility reasons
   the checksum is still not used in conjunction with to the old 
   transport protocol implementation)
 - rcX Packet Transfer: Acknowledge not send as a result of a call 
   to xSysdevicePutPacket() and xChannelPutPacket()


V0.9.6.0 (2010-04-29)
----------------------
Changes:
 - Accelerate packet transfer for old transport protocol implementation 
   (sleep 100ms after every 5th send packet)
 
Add-ons:
 - None.

Bug fixes:
 - rcX Packet Transfer: Browse device may return wrong info. If a device is disconnected 
   from the host and a different device shows up on the same interface the device 
   information is not refreshed. 
 - Sleep required in old transport protocol implementation may not performed if packets 
   send simultaneously by multiple threads


V0.9.5.0 (2010-04-13)
----------------------
Changes:
 - None.

Add-ons:
 - rcX Packet Transfer: Implementation of xChannelControlBlock() added
 - rcX Packet Transfer: Implementation of xChannelBusState() added

Bug fixes:
 - Invalid access to transport layer during disconnection process
 - Invalid access to datalayer during connection establishment
 - rcX Packet Transfer: Wrong len of packet data supplied in xSysdeviceFindFirst/NextFile()
 - rcX Packet Transfer: Channel enumeration includes handshake channel
 - rcX Packet Transfer: xChannelCommonStatusBlock() returns status block from wrong channel


V0.9.4.0 (2010-03-29)
----------------------
Changes:
 - Interfaces which are not accessed are now disconnected automatically (after 10 seconds of inactivity)

Add-ons:
 - None.

Bug fixes:
 - None.


V0.9.3.0 (2010-03-26)
---------------------
Changes:
 - None.

Add-ons:
 - Support for 2nd Stage Loader with limited packet support (V0.914 and lower)

Bug fixes:
 - rcX Packet Transfer: Device name used to set alias name
 - rcX Packet Transfer: Size of mailbox returned by xSysdeviceInfo() always zero


V0.9.2.0 (2010-03-05)
---------------------
Changes:
 - nxAPI functions for configuration dialog revised

Add-ons:
 - Timeout handling for parallel services added

Bug fixes:
 - None.


V0.9.1.1 (2010-02-24)
---------------------
Changes:
 - Workaround for old transport protocol implementation: Ignore sequence number of confirmation messages
 - Workaround for old transport protocol implementation: Sleep 100 ms after every transmission to prevent error on device side
 - Use Alias to extend maximum length of board name to 32 characters

Add-ons:
 - None.

Bug fixes:
 - rcX Packet Transfer: Read system channel although block info req is not supported
 - rcX Packet Transfer: xSysdeviceInfo() Command CIFX_INFO_CMD_SYSTEM_CHANNEL_BLOCK returns only first channel
 - cifX API Marhaller: xSysdeviceFindFirstFile()/xSysdeviceFindNextFile() Pointer to data structure may invalid
 - Establish connection always failed if device does not support query server request


V0.9.0.0 (2010-02-16)
---------------------
Changes:
 - Initial version.

Add-ons:
 - None.

Bug fixes:
 - None.